📘 NuttX BSP 移植 · 全流程实战
🗂️
30 章节 · 从入门到精通
01
NuttX 概述
RTOS 选型对比、架构特点、源码获取与目录结构解析
02
开发环境搭建
交叉编译工具链安装、模拟器配置、首次编译与运行
03
BSP 概念解析
什么是 BSP、NuttX BSP 分层模型、arch/board/driver 关系
04
芯片选型与文档准备
数据手册、参考手册、勘误表、原理图与 PCB 设计文件
05
创建新芯片架构目录
在 arch/ 下新建 arm/chip_family 目录、Kconfig 与 Make.defs 编写
06
芯片启动流程分析
Reset_Handler、SystemInit、__start 入口函数、链接脚本编写
07
时钟树配置
PLL 锁相环配置、系统时钟源选择、外设时钟使能、时钟输出调试
08
GPIO 驱动移植
GPIO 寄存器映射、上下拉配置、中断触发模式、测试用例
09
UART 串口驱动
串口初始化、波特率配置、中断收发、DMA 模式支持
10
中断控制器配置
NVIC/PLIC 配置、中断向量表重定向、优先级分组、嵌套处理
11
系统定时器
SysTick/Timer 滴答配置、系统节拍设置、usleep 精度验证
12
SPI 总线驱动
SPI 主从模式、时钟极性相位、DMA 传输、SPI Flash 驱动
13
I2C 总线驱动
I2C 时序配置、多主机仲裁、SMBus 兼容、EEPROM 读写测试
14
DMA 控制器驱动
DMA 描述符链、内存到外设传输、中断完成回调、性能调优
15
ADC 驱动移植
ADC 分辨率配置、采样序列、DMA 采集、电压转换公式
16
PWM 输出驱动
PWM 定时器配置、占空比调节、互补输出、死区插入
17
板级初始化流程
board_initialize()、board_late_initialize()、板级 GPIO 配置
18
板级电源管理
PM 框架集成、休眠唤醒流程、电源域控制、功耗测量
19
板级网络接口
以太网 MAC 驱动、PHY 芯片配置、lwIP 协议栈集成、网络测试
20
板级存储设备
SD/MMC 卡驱动、FATFS 文件系统、分区表解析、读写性能测试
21
板级音频设备
I2S 接口配置、音频编解码器驱动、ALSA 框架集成、播放测试
22
板级显示设备
LCD 控制器驱动、Framebuffer 框架、触摸屏驱动、GUI 移植
23
板级 USB 设备
USB 设备控制器驱动、CDC ACM 虚拟串口、MSC 大容量存储、HID
24
板级传感器驱动
I2C/SPI 传感器通用框架、温度传感器、加速度计、磁力计
25
板级无线通信
WiFi 模组驱动、蓝牙 BLE 协议栈、LoRa 驱动、ZigBee 移植
26
板级安全特性
安全启动、加密引擎驱动、TRNG 随机数生成器、安全存储
27
板级调试与测试
JTAG/SWD 调试、串口日志系统、性能分析工具、压力测试
28
板级配置系统
defconfig 配置、menuconfig 图形化、自动生成头文件、依赖管理
29
BSP 打包与发布
补丁制作、Git 提交规范、文档编写、CI/CD 集成测试
30
实战案例
基于 STM32F4 完整 BSP 移植、RISC-V BSP 移植、常见问题排错